package cn.wolfcode.luowowo.search.service;

import cn.wolfcode.luowowo.search.query.SearchQueryObject;
import cn.wolfcode.luowowo.search.query.StrategySearchQuery;
import cn.wolfcode.luowowo.search.template.UserInfoTemplate;
import org.springframework.data.domain.Page;
import org.springframework.data.elasticsearch.core.query.SearchQuery;

import java.util.List;

/**
 * 用户搜索服务
 */
public interface IUserInfoSearchService {

    /**
     * 添加
     * @param template
     */
    void save(UserInfoTemplate template);

    /**
     * 更新
     * @param template
     */
    void update(UserInfoTemplate template);

    /**
     * 删除
     */
    void delete(Long id);

    /**
     * 查单个
     */
    UserInfoTemplate get(Long id);


    /**
     * 查所有
     */
    List<UserInfoTemplate> list();
/**
     * 分页
     */
    Page<UserInfoTemplate> query(SearchQuery qo);

    /**
     * 创建索引
     */
    void createIndex();


    Page<UserInfoTemplate> searchByDest(SearchQueryObject qo);

    /**
     * 根据目的地名称查询
     * @param qo
     * @return
     */
    Page<UserInfoTemplate> queryUserByDestName(StrategySearchQuery qo);
}
